package cn.com.yusys.yusp.mobile.web.rest;

import cn.com.yusys.yusp.commons.mapper.QueryModel;
import cn.com.yusys.yusp.commons.web.rest.dto.ResultDto;
import cn.com.yusys.yusp.mobile.service.WcrmGridInfoService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.Map;

/**
 * 营销活动表(WcrmMarketActivity)表控制层
 *
 * @author pig4cloud
 * @since 2021-06-24 10:24:09
 */
@RestController
@RequestMapping("/mobile/wcrmGridInfo")
public class WcrmGridInfoResource {
    /**
     * 服务对象
     */
    @Resource
    private WcrmGridInfoService wcrmGridInfoService;

    /**
     * 我的网格 - 网格地图 - 点击网格营销进入地图，展示我的网格
     * 输入  客户经理编号（必）  二级网格id   网格类型
     * 输出
     * @param
     * @return
     */
    @GetMapping("gridSelect")
    public ResultDto<Object> selectGridInfoKUJL(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.selectGridInfoKUJL(queryModel));
    }

    /**
     * 我的网格 - 网格情况 - 点击地图上某个网格
     * 输入  二级网格id
     * 输出
     * @param
     * @return
     */
    @GetMapping("gridInfoSelect")
    public ResultDto<Object> selectGridInfoTwo(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.selectGridInfoTwo(queryModel));
    }

    /**
     * 我的网格 - 网格情况 - 关键人信息
     * 输入  二级网格id
     * 输出
     * @param
     * @return
     */
    @GetMapping("gridKeyManInfoSelect")
    public ResultDto<Object> selectGridInfoKeyMan(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.selectGridInfoKeyMan(queryModel));
    }

    /**
     * 我的网格 - 网格情况 - 客户信息信息接口
     * 输入  二级网格id
     * 输出
     * @param
     * @return
     */
    @GetMapping("gridCustInfoSelect")
    public ResultDto<Object> gridCustInfoLevelSelectTwo(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.gridCustInfoLevelSelectTwo(queryModel));
    }


    /**
     * 我的网格 - 网格情况 - 商户信息信息接口
     * 输入  二级网格id
     * 输出
     * @param
     * @return
     */
    @GetMapping("merchantInfoSelect")
    public ResultDto<Object> gridMerchantCustInfoSelect(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.gridMerchantCustInfoSelect(queryModel));
    }

    /**
     * 我的网格 - 网格情况 - 地图-网格详情
     * 建档客户趋势
     * 我行客户趋势
     * 客户产品数据月报
     *
     * 输入  二级网格id
     * 输出
     * @param
     * @return
     */
    @GetMapping("transformationSelect")
    public ResultDto<Object> transformationSelect(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.transformationSelect(queryModel));
    }

    /**
     * 我的网格 - 网格信息修改 - 点击保存提交网格修改信息
     *
     * 输入  二级网格id
     * 输出
     * @param
     * @return
     */
    @PostMapping("saveGridInfo")
    public ResultDto<Object> saveKeymanInfo(@RequestBody Map queryModel) {
        return new ResultDto<>(wcrmGridInfoService.saveKeymanInfo(queryModel));
    }


    /**
     * 我的网格 - 网格信息修改 - 点击保存提交网格修改信息
     *
     * 输入  二级网格id
     * 输出
     * @param
     * @return
     */
    @PostMapping("keymanInfoModify")
    public ResultDto<Object> keymanInfoModify(@RequestBody Map queryModel) {
        return new ResultDto<>(wcrmGridInfoService.keymanInfoModify(queryModel));
    }

    /**
     * 根据ID批量删除关键人信息
     * @return
     */
    @DeleteMapping("/keymanInfoDelete")
    public ResultDto<Object> keymanInfoDelete(@RequestParam String id) {
        return new ResultDto<>(wcrmGridInfoService.deleteBatch(id));
    }

    /**
     * 我的网格 - 网格活动 - 活动列表页
     * 输入
     * 输出
     * @param
     * @return
     */
    @GetMapping("actInfoSelect")
    public ResultDto<Object> actInfoSelect(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.actInfoSelect(queryModel));
    }

    /**
     * 我的网格 - 网格活动 - 活动详情页
     * 输入
     * 输出
     * @param
     * @return
     */
    @GetMapping("queryActInfo")
    public ResultDto<Object> queryActInfo(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.queryActInfo(queryModel));
    }

    /**
     * 我的网格 - 网格活动 - 上传活动图片
     *
     * 输入  二级网格id
     * 输出
     * @param
     * @return
     */
    @PostMapping("saveActPicInfo")
    public ResultDto<Object> saveActPicInfo(@RequestBody Map queryModel) {
        return new ResultDto<>(wcrmGridInfoService.saveActPicInfo(queryModel));
    }


    /**
     * 支行网格 - 支行网格地图 - 支行网格首页，展示支行网格列表 ----总行   查询所有一级网格及区域
     * 输入
     * 输出
     * @param
     * @return
     */
    @GetMapping("selectGridInfoZH")
    public ResultDto<Object> selectGridInfoZH(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.selectGridInfoZH(queryModel));
    }

    /**
     * 支行网格 - 支行网格地图 - 支行网格首页，展示支行网格列表 ----支行   查询所有一级网格及区域
     * 输入
     * 输出
     * @param
     * @return
     */
    @GetMapping("selectGridInfoZHH")
    public ResultDto<Object> selectGridInfoZHH(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.selectGridInfoZHH(queryModel));
    }

    /**
     * 支行网格 - 支行网格地图 - 支行网格首页，展示支行网格列表 ----分行   查询所有一级网格及区域
     * 输入
     * 输出
     * @param
     * @return
     */
    @GetMapping("selectGridInfoFH")
    public ResultDto<Object> selectGridInfoFH(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.selectGridInfoFH(queryModel));
    }


    /**
     * 支行网格 - 具体支行网格地图 - 客户经理网格
     * 具体一家支行网格地图：输入一级网格id  查二级网格信息 并 关联出客户经理的信息
     * 输入
     * 输出
     * @param
     * @return
     */
    @GetMapping("queryGridMgr")
    public ResultDto<Object> queryGridMgr(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.queryGridMgr(queryModel));
    }

    /**
     * 支行网格 - 具体支行网格地图 - 支行网格汇总数据
     * 支行网格汇总数据
     * 输入
     * 输出
     * @param
     * @return
     */
    @GetMapping("queryGridSumInfo")
    public ResultDto<Object> queryGridSumInfo(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.queryGridSumInfo(queryModel));
    }


    /**
     * 支行网格 - 具体支行网格地图 -
     * 建档客户趋势
     * 我行客户趋势
     * 客户产品数据月报
     * 输入
     * 输出
     * @param
     * @return
     */
    @GetMapping("transformationSelectOneLevelGrid")
    public ResultDto<Object> transformationSelectOneLevelGrid(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.transformationSelectOneLevelGrid(queryModel));
    }

    /**
     * 支行网格 - 支行客户经理列表 -
     * 输入
     * 输出
     * @param
     * @return
     */
    @GetMapping("queryGridMgrList")
    public ResultDto<Object> queryOnelevelGridMgr(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.queryOnelevelGridMgr(queryModel));
    }

    /**
     * 支行网格 - 某客户经理详细网格 -
     * 输入
     * 输出
     * @param
     * @return
     */
    @GetMapping("queryGridOneMgr")
    public ResultDto<Object> queryGridOneMgr(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.queryGridMgrInfo(queryModel));
    }

    /**
     * 支行网格 - 某客户经理详细网格 - 客户经理详细网格  客户经理业绩-
     * 输入
     * 输出
     * @param
     * @return
     */
    @GetMapping("queryGridSumMgrInfo")
    public ResultDto<Object> transformationSelectThirdLevelGrid(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.transformationSelectThirdLevelGrid(queryModel));
    }


    /**
     * 支行网格 - 某客户经理详细网格 -
     * 建档客户趋势统计  数据  一级网格  02-
     * 我行客户趋势统计  数据  一级网格  02-
     * 客户产品数据月报  数据  一级网格  02-
     * 输入
     * 输出
     * @param
     * @return
     */
    @GetMapping("transformationSelectTwoLevelGrid")
    public ResultDto<Object> transformationSelectTwoLevelGrid(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.transformationSelectTwoLevelGrid(queryModel));
    }

    /**
     * 支行网格 - 某客户经理详细网格 - 输入客户经理号 查询二级网格信息
     * 输入
     * 输出
     * @param
     * @return
     */
    @GetMapping("selectGridInfo")
    public ResultDto<Object> selectGridInfo(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.selectGridInfo(queryModel));
    }

    /**
     * 支行网格 - 某客户经理详细网格 -
     * 输入
     * 输出
     * @param
     * @return
     */
    @GetMapping("queryGridMgrInfo")
    public ResultDto<Object> queryGridMgrInfo(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.queryGridMgrInfo(queryModel));
    }

    /**
     * 支行网格 - 某客户经理详细网格 - 支行网格中的客户 输入一级网格编号 必输  客户等级 组/栋 选输  个人客户
     * 输入
     * 输出
     * @param
     * @return
     */
    @GetMapping("queryGridCustList")
    public ResultDto<Object> gridCustInfoLevelSelect(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.gridCustInfoLevelSelect(queryModel));
    }

    /**
     * 支行网格 - 某客户经理详细网格 - 支行网格中的客户 输入一级网格编号 必输 二级网格id可选 商户客户
     * 输入
     * 输出
     * @param
     * @return
     */
    @GetMapping("gridCustInfoLevelSelectZH")
    public ResultDto<Object> gridCustInfoLevelSelectZH(QueryModel queryModel) {
        return new ResultDto<>(wcrmGridInfoService.gridCustInfoLevelSelectZH(queryModel));
    }


}